/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package redesneurais;

import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.Locale;
import redesneurais.backpropagation.Par;
import redesneurais.backpropagation.backpropagation;

/**
 *
 * @author Sandro
 */
public class RedesNeurais {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        
        
        int numNeruroniosOcultos = 2;
        int epocas = 500000;
        
        
        Double tx = 0.887;
        
        
//          Par par1 = new Par();
//          par1.addEntrada(2.0);
//          par1.addEntrada(1.0);
//          par1.addSaida(1.0);
//          par1.addSaida(-1.0);
        
        
         /**
         * Par de treinamento 1
         */
        Par par1 = new Par();
        par1.addEntrada(0.0);
        par1.addEntrada(0.0);
        par1.addSaida(0.0);
       
        Par par2 = new Par();
        par2.addEntrada(1.0);
        par2.addEntrada(0.0);
        par2.addSaida(1.0);
        
        Par par3 = new Par();
        par3.addEntrada(0.0);
        par3.addEntrada(1.0);
        par3.addSaida(1.0);
        
        Par par4 = new Par();
        par4.addEntrada(1.0);
        par4.addEntrada(1.0);
        par4.addSaida(0.0);
        
        
        
        ArrayList<Par> pares = new ArrayList<Par>();
        
        pares.add(par1);
        pares.add(par2);
        pares.add(par3);
        pares.add(par4);
        
        backpropagation b = new backpropagation(numNeruroniosOcultos, epocas, par1.getEntrada().size(), par1.getSaida().size(), tx);
        b.treinamento(pares); 
        
        Double[] x = b.teste(par1);
        
        NumberFormat decimal = DecimalFormat.getInstance(Locale.ENGLISH);
        decimal.setMinimumFractionDigits(2);  
        System.out.println("Esperado: 0 Saida:" + (x[0]));
       // System.out.println(decimal.format(x[1]));
        
        x = b.teste(par2);
        System.out.println("Esperado: 1 Saida:" + (x[0]));
        
        x = b.teste(par3);
        System.out.println("Esperado: 1 Saida:" + (x[0]));
        
        x = b.teste(par4);
        System.out.println("Esperado: 0 Saida:" + (x[0]));
       
        
     
    }
}
